package mvc;

import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
/**
 * 
 * @author Andrea Pasquali
 *
 */
public class CircleController implements MouseListener, MouseMotionListener{

	
	private Circle circle;
	private int dx,dy;
	
	/**
	 * 
	 * Questo metodo permette di controllare il cerchio tramite mouse
	 * 
	 * @param circle il cerchio che si può spostare
	 */
	public CircleController(Circle circle) {
		super();
		this.circle = circle;
	}
	
	/**
	 * Questo metodo permette di ottenere le coordinate del cerchio quando viene tenuto premuto il tasto del mouse, per permetterne lo spostamento nel pannello
	 */
	@Override
	public void mousePressed(MouseEvent event) {
	int xp=event.getX();
	int yp=event.getY(); 
	dx=circle.getX()-xp;
	dy=circle.getY()-yp;
	}
	
	/**
	 * Questo metodo permette, quando rilasciato il tasto del mouse, di lasciare la figura lì dov'era stata trascinata
	 */
	@Override
	public void mouseReleased(MouseEvent event) {
		mouseDragged(event);
		
	}
	
	/**
	 * Permette di ottenere le varie coordinate del cerchio mentre lo sposto
	 */
	@Override
	public void mouseDragged(MouseEvent event) {
		int xd=event.getX();
		int yd=event.getY();
		circle.setX(xd+dx);
		circle.setY(yd+dy);
	}
	
	@Override
	public void mouseClicked(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}
	
	@Override
	public void mouseEntered(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}
	
	@Override
	public void mouseExited(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}
	
	@Override
	public void mouseMoved(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}
	
}
